SpringCloud搭建微服务之Consul服务注册与发现

您所在的位置:网站首页 spring cloud 注册服务 SpringCloud搭建微服务之Consul服务注册与发现

SpringCloud搭建微服务之Consul服务注册与发现

2024-07-10 06:41| 来源: 网络整理| 查看: 265

1. Consul介绍

Consul是由HashiCorp公司使用Go语言开发的一款开源工具,主要用于实现分布式系统的服务发现和服务配置,其内置了服务注册与发现框架、分布式一致性协议实现、健康检查、Key-Value存储、多数据中心方案。Consul具有高可移植性,支持Linux、Windows和Max OS X等多个操作系统,其安装包只是一个可执行文件,方便部署,也可与Docker等轻量级容器无缝配合。Consul使用Raft算法来保证一致性,相比使用Paxos算法更简单。更多详情,可以参阅Consul官网

2. 多种注册中心比较 项目EurekaConsulETCDZookeeperNacos编写语言JavaGoGoJavaJava客户端支持HTTPHTTP、DNSHTTP、Etcd3、gRPC跨语言弱,Curator组件HTTP、动态DNS、UDP服务健康检查需要显示配置健康检查提供详细的服务状态、内存、硬盘检查连接心跳长连接、KeepaliveTCP/HTTP/MySQL多数据中心无通过WAN的Gossip协议支持无无支持单机模式、多集群模式Key-Value存储无支持支持支持支持一致性只能保证最终一致性,不能保证强一致性RaftRaftPaxosRaftCAPAPAPCPCPCP/APWatch支持支持支持支持支持支持自身监控MetricsMetricsMetrics使用第三方组件Metrics安全ACLACL/HTTPSHTTPSACLACL/HTTPSSpring Cloud集成支持支持支持支持支持 3. Consul下载与安装 3.1. Consul下载

进入Consul官网,如下图: Consul官网 点击Download进入下载页面 Consul下载页 选择适合的系统和版本,这里使用Windows系统,386对应的是32位操作系统,AMD64对应的是64位操作系统。

3.2. Consul安装

下载后解压到指定文件夹,可以看到consul.exe的文件,在安装文件路径下使用cmd命令符,使用consul --version查看版本号 查看版本 如果可看到版本号信息,表明下载的Consul安装软件适用于本安装系统,使用consul agent -dev启动Consul 启动Consul -dev 表示以开发模式运行,-server 表示以服务器模式运行 在浏览器地址栏输入http://localhost:8500/,进入Consul管理页面 Consul管理页面

4. Spring Cloud集成Consul 4.1. 版本说明

本文使用最新的SpringBoot和SpringCloud版本 JDK:17 Maven:3.9.6 SpringBoot:3.2.3 SpringCloud:2023.0.0

4.2. 引入核心依赖

在pom.xml文件中引入consul依赖

org.springframework.cloud spring-cloud-starter-consul-discovery 4.3. 配置consul访问地址

在application.yml文件中配置consul访问地址

spring: cloud: consul: host: localhost port: 8500 discovery: prefer-ip-address: true service-name: ${spring.application.name} 4.4. 主启动类

在主启动类上添加注解@EnableDiscoveryClient即可

4.5. 验证

启动服务,查看consul控制台页面 consul管理端

5. 问题处理

问题1:控制台启动成功了,Consul管理端依然提示错误 Consul错误 解决:在pom.xml中引入actuator依赖,这是因为consul需要actuator提供服务的健康检查

org.springframework.boot spring-boot-starter-actuator

问题2:提示移除commons-logging.jar commons-logging 解决:在consul依赖中移除这个依赖

org.springframework.cloud spring-cloud-starter-consul-discovery commons-logging commons-logging

问题3:启动服务后,控制台出现大量WARN警告 WARN警告 解决:这是spring-cloud-commons存在的问题,将spring cloud的组件排除掉,直接引用新的commons依赖,该问题会在spring cloud下个版本中解决,到时就不需要额外引入spring-cloud-commons依赖

org.springframework.cloud spring-cloud-starter-consul-discovery commons-logging commons-logging org.springframework.cloud spring-cloud-commons org.springframework.cloud spring-cloud-commons 4.1.1 compile


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3